package com.jhy.review.day07;

/**
 * 求一个数组当中的最大值
 * 2022-8-31 21:52:54
 * 使用递归的方式实现
 */
public class code_02Get_Max {
    public static int getMax(int[] arr) {
        return process(arr, 0, arr.length - 1);
    }

    public static int process(int[] arr, int l, int r) {
        // BaseCase
        if (l == r) {
            return arr[l];
        }
        int mid = l + ((r-l)>>1);
//        先算左边的最大值
        int left = process(arr,l,mid);
//        再算右边的最大值
        int right = process(arr,mid+1,r);
        return Math.max(left,right);
    }

    public static void main(String[] args) {
//        int[] arr = {1,3,45,6,7,6};
//        int max = getMax(arr);
//        System.out.println(max);

//        //Todo 将list中0~5数据删除
//        List<String> list = new ArrayList<>();
//
//        List<String> newList  = new ArrayList<>();
//        //创建0到10的字符串集合
//        for (int i = 0; i <= 10; i++) {
//            list.add(i+"");
//        }
//        List<String> pids = new ArrayList<>();
//        //创建0到5的字符串集合
//        for (int i = 0; i <= 5; i++) {
//            pids.add(i+"");
//        }
//        //stream流在此处理集合数据，filter过滤数据，contains为list的一个方法，forEach为遍历集合
//        List<String> collect = list.stream().filter(s -> !pids.contains(s)).collect(Collectors.toList());
//        System.out.println("------------------");
//        collect.forEach(System.out::println);


        int a = 10;

        System.out.println("修改之前a = " + a);//10

        //a是实参
         int b = change(a);

        System.out.println("修改之后a = " + a);//10





    }

    public static int change(int num){
        System.out.println("修改之前num = " + num);//10

        num *=  2;

        System.out.println("修改之后num = " + num);//20
        return num;
    }


}
